0 JBC
↳1 JBC2FIG (⇐)
↳2 FIGraph
↳3 FIGtoITRSProof (⇐)
↳4 ITRS
↳5 ITRStoIDPProof (⇔)
↳6 IDP
↳7 UsableRulesProof (⇔)
↳8 IDP
↳9 IDPNonInfProof (⇐)
↳10 AND
↳11 IDP
↳12 IDependencyGraphProof (⇔)
↳13 IDP
↳14 IDPNonInfProof (⇐)
↳15 AND
↳16 IDP
↳17 IDependencyGraphProof (⇔)
↳18 TRUE
↳19 IDP
↳20 IDependencyGraphProof (⇔)
↳21 TRUE
↳22 IDP
↳23 IDependencyGraphProof (⇔)
↳24 TRUE
No human-readable program information known.
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(0) -> (1), if ((i15[0] →* i15[1])∧(i15[0] > 0 →* TRUE))
(1) -> (2), if ((0 →* i21[2])∧(i15[1] →* i15[2]))
(1) -> (4), if ((0 →* i21[4])∧(i15[1] →* i15[4]))
(2) -> (3), if ((i15[2] →* i15[3])∧(i21[2] →* i21[3])∧(i21[2] >= 0 && i21[2] < i15[2] && i21[2] + 1 > 0 →* TRUE))
(3) -> (2), if ((i21[3] + 1 →* i21[2])∧(i15[3] →* i15[2]))
(3) -> (4), if ((i21[3] + 1 →* i21[4])∧(i15[3] →* i15[4]))
(4) -> (5), if ((i15[4] > 0 && i21[4] >= i15[4] →* TRUE)∧(i15[4] →* i15[5])∧(i21[4] →* i21[5]))
(5) -> (0), if ((i15[5] + -1 →* i15[0]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(0) -> (1), if ((i15[0] →* i15[1])∧(i15[0] > 0 →* TRUE))
(1) -> (2), if ((0 →* i21[2])∧(i15[1] →* i15[2]))
(1) -> (4), if ((0 →* i21[4])∧(i15[1] →* i15[4]))
(2) -> (3), if ((i15[2] →* i15[3])∧(i21[2] →* i21[3])∧(i21[2] >= 0 && i21[2] < i15[2] && i21[2] + 1 > 0 →* TRUE))
(3) -> (2), if ((i21[3] + 1 →* i21[2])∧(i15[3] →* i15[2]))
(3) -> (4), if ((i21[3] + 1 →* i21[4])∧(i15[3] →* i15[4]))
(4) -> (5), if ((i15[4] > 0 && i21[4] >= i15[4] →* TRUE)∧(i15[4] →* i15[5])∧(i21[4] →* i21[5]))
(5) -> (0), if ((i15[5] + -1 →* i15[0]))
(1) (i15[0]=i15[1]∧>(i15[0], 0)=TRUE ⇒ LOAD139(i15[0])≥NonInfC∧LOAD139(i15[0])≥COND_LOAD139(>(i15[0], 0), i15[0])∧(UIncreasing(COND_LOAD139(>(i15[0], 0), i15[0])), ≥))
(2) (>(i15[0], 0)=TRUE ⇒ LOAD139(i15[0])≥NonInfC∧LOAD139(i15[0])≥COND_LOAD139(>(i15[0], 0), i15[0])∧(UIncreasing(COND_LOAD139(>(i15[0], 0), i15[0])), ≥))
(3) (i15[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD139(>(i15[0], 0), i15[0])), ≥)∧[(-1)bni_16 + (-1)Bound*bni_16] + [bni_16]i15[0] ≥ 0∧[(-1)bso_17] ≥ 0)
(4) (i15[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD139(>(i15[0], 0), i15[0])), ≥)∧[(-1)bni_16 + (-1)Bound*bni_16] + [bni_16]i15[0] ≥ 0∧[(-1)bso_17] ≥ 0)
(5) (i15[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD139(>(i15[0], 0), i15[0])), ≥)∧[(-1)bni_16 + (-1)Bound*bni_16] + [bni_16]i15[0] ≥ 0∧[(-1)bso_17] ≥ 0)
(6) (i15[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD139(>(i15[0], 0), i15[0])), ≥)∧[(-1)Bound*bni_16] + [bni_16]i15[0] ≥ 0∧[(-1)bso_17] ≥ 0)
(7) (COND_LOAD139(TRUE, i15[1])≥NonInfC∧COND_LOAD139(TRUE, i15[1])≥LOAD274(i15[1], 0)∧(UIncreasing(LOAD274(i15[1], 0)), ≥))
(8) ((UIncreasing(LOAD274(i15[1], 0)), ≥)∧[(-1)bso_19] ≥ 0)
(9) ((UIncreasing(LOAD274(i15[1], 0)), ≥)∧[(-1)bso_19] ≥ 0)
(10) ((UIncreasing(LOAD274(i15[1], 0)), ≥)∧[(-1)bso_19] ≥ 0)
(11) ((UIncreasing(LOAD274(i15[1], 0)), ≥)∧0 = 0∧[(-1)bso_19] ≥ 0)
(12) (i15[2]=i15[3]∧i21[2]=i21[3]∧&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0))=TRUE ⇒ LOAD274(i15[2], i21[2])≥NonInfC∧LOAD274(i15[2], i21[2])≥COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])∧(UIncreasing(COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])), ≥))
(13) (>(+(i21[2], 1), 0)=TRUE∧>=(i21[2], 0)=TRUE∧<(i21[2], i15[2])=TRUE ⇒ LOAD274(i15[2], i21[2])≥NonInfC∧LOAD274(i15[2], i21[2])≥COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])∧(UIncreasing(COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])), ≥))
(14) (i21[2] ≥ 0∧i21[2] ≥ 0∧i15[2] + [-1] + [-1]i21[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [bni_20]i15[2] ≥ 0∧[(-1)bso_21] ≥ 0)
(15) (i21[2] ≥ 0∧i21[2] ≥ 0∧i15[2] + [-1] + [-1]i21[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [bni_20]i15[2] ≥ 0∧[(-1)bso_21] ≥ 0)
(16) (i21[2] ≥ 0∧i21[2] ≥ 0∧i15[2] + [-1] + [-1]i21[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [bni_20]i15[2] ≥ 0∧[(-1)bso_21] ≥ 0)
(17) (i21[2] ≥ 0∧i21[2] ≥ 0∧i15[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])), ≥)∧[(-1)Bound*bni_20] + [bni_20]i21[2] + [bni_20]i15[2] ≥ 0∧[(-1)bso_21] ≥ 0)
(18) (COND_LOAD274(TRUE, i15[3], i21[3])≥NonInfC∧COND_LOAD274(TRUE, i15[3], i21[3])≥LOAD274(i15[3], +(i21[3], 1))∧(UIncreasing(LOAD274(i15[3], +(i21[3], 1))), ≥))
(19) ((UIncreasing(LOAD274(i15[3], +(i21[3], 1))), ≥)∧[(-1)bso_23] ≥ 0)
(20) ((UIncreasing(LOAD274(i15[3], +(i21[3], 1))), ≥)∧[(-1)bso_23] ≥ 0)
(21) ((UIncreasing(LOAD274(i15[3], +(i21[3], 1))), ≥)∧[(-1)bso_23] ≥ 0)
(22) ((UIncreasing(LOAD274(i15[3], +(i21[3], 1))), ≥)∧0 = 0∧0 = 0∧[(-1)bso_23] ≥ 0)
(23) (&&(>(i15[4], 0), >=(i21[4], i15[4]))=TRUE∧i15[4]=i15[5]∧i21[4]=i21[5] ⇒ LOAD274(i15[4], i21[4])≥NonInfC∧LOAD274(i15[4], i21[4])≥COND_LOAD2741(&&(>(i15[4], 0), >=(i21[4], i15[4])), i15[4], i21[4])∧(UIncreasing(COND_LOAD2741(&&(>(i15[4], 0), >=(i21[4], i15[4])), i15[4], i21[4])), ≥))
(24) (>(i15[4], 0)=TRUE∧>=(i21[4], i15[4])=TRUE ⇒ LOAD274(i15[4], i21[4])≥NonInfC∧LOAD274(i15[4], i21[4])≥COND_LOAD2741(&&(>(i15[4], 0), >=(i21[4], i15[4])), i15[4], i21[4])∧(UIncreasing(COND_LOAD2741(&&(>(i15[4], 0), >=(i21[4], i15[4])), i15[4], i21[4])), ≥))
(25) (i15[4] + [-1] ≥ 0∧i21[4] + [-1]i15[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD2741(&&(>(i15[4], 0), >=(i21[4], i15[4])), i15[4], i21[4])), ≥)∧[(-1)bni_24 + (-1)Bound*bni_24] + [bni_24]i15[4] ≥ 0∧[(-1)bso_25] ≥ 0)
(26) (i15[4] + [-1] ≥ 0∧i21[4] + [-1]i15[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD2741(&&(>(i15[4], 0), >=(i21[4], i15[4])), i15[4], i21[4])), ≥)∧[(-1)bni_24 + (-1)Bound*bni_24] + [bni_24]i15[4] ≥ 0∧[(-1)bso_25] ≥ 0)
(27) (i15[4] + [-1] ≥ 0∧i21[4] + [-1]i15[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD2741(&&(>(i15[4], 0), >=(i21[4], i15[4])), i15[4], i21[4])), ≥)∧[(-1)bni_24 + (-1)Bound*bni_24] + [bni_24]i15[4] ≥ 0∧[(-1)bso_25] ≥ 0)
(28) (i15[4] ≥ 0∧i21[4] + [-1] + [-1]i15[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD2741(&&(>(i15[4], 0), >=(i21[4], i15[4])), i15[4], i21[4])), ≥)∧[(-1)Bound*bni_24] + [bni_24]i15[4] ≥ 0∧[(-1)bso_25] ≥ 0)
(29) (i15[4] ≥ 0∧i21[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD2741(&&(>(i15[4], 0), >=(i21[4], i15[4])), i15[4], i21[4])), ≥)∧[(-1)Bound*bni_24] + [bni_24]i15[4] ≥ 0∧[(-1)bso_25] ≥ 0)
(30) (COND_LOAD2741(TRUE, i15[5], i21[5])≥NonInfC∧COND_LOAD2741(TRUE, i15[5], i21[5])≥LOAD139(+(i15[5], -1))∧(UIncreasing(LOAD139(+(i15[5], -1))), ≥))
(31) ((UIncreasing(LOAD139(+(i15[5], -1))), ≥)∧[1 + (-1)bso_27] ≥ 0)
(32) ((UIncreasing(LOAD139(+(i15[5], -1))), ≥)∧[1 + (-1)bso_27] ≥ 0)
(33) ((UIncreasing(LOAD139(+(i15[5], -1))), ≥)∧[1 + (-1)bso_27] ≥ 0)
(34) ((UIncreasing(LOAD139(+(i15[5], -1))), ≥)∧0 = 0∧0 = 0∧[1 + (-1)bso_27] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD139(x1)) = [-1] + x1
POL(COND_LOAD139(x1, x2)) = [-1] + x2
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(LOAD274(x1, x2)) = [-1] + x1
POL(COND_LOAD274(x1, x2, x3)) = [-1] + x2
POL(&&(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
POL(<(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(COND_LOAD2741(x1, x2, x3)) = [-1] + x2
POL(-1) = [-1]
COND_LOAD2741(TRUE, i15[5], i21[5]) → LOAD139(+(i15[5], -1))
LOAD139(i15[0]) → COND_LOAD139(>(i15[0], 0), i15[0])
LOAD274(i15[2], i21[2]) → COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])
LOAD274(i15[4], i21[4]) → COND_LOAD2741(&&(>(i15[4], 0), >=(i21[4], i15[4])), i15[4], i21[4])
LOAD139(i15[0]) → COND_LOAD139(>(i15[0], 0), i15[0])
COND_LOAD139(TRUE, i15[1]) → LOAD274(i15[1], 0)
LOAD274(i15[2], i21[2]) → COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])
COND_LOAD274(TRUE, i15[3], i21[3]) → LOAD274(i15[3], +(i21[3], 1))
LOAD274(i15[4], i21[4]) → COND_LOAD2741(&&(>(i15[4], 0), >=(i21[4], i15[4])), i15[4], i21[4])
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(0) -> (1), if ((i15[0] →* i15[1])∧(i15[0] > 0 →* TRUE))
(1) -> (2), if ((0 →* i21[2])∧(i15[1] →* i15[2]))
(3) -> (2), if ((i21[3] + 1 →* i21[2])∧(i15[3] →* i15[2]))
(2) -> (3), if ((i15[2] →* i15[3])∧(i21[2] →* i21[3])∧(i21[2] >= 0 && i21[2] < i15[2] && i21[2] + 1 > 0 →* TRUE))
(1) -> (4), if ((0 →* i21[4])∧(i15[1] →* i15[4]))
(3) -> (4), if ((i21[3] + 1 →* i21[4])∧(i15[3] →* i15[4]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(3) -> (2), if ((i21[3] + 1 →* i21[2])∧(i15[3] →* i15[2]))
(2) -> (3), if ((i15[2] →* i15[3])∧(i21[2] →* i21[3])∧(i21[2] >= 0 && i21[2] < i15[2] && i21[2] + 1 > 0 →* TRUE))
(1) (COND_LOAD274(TRUE, i15[3], i21[3])≥NonInfC∧COND_LOAD274(TRUE, i15[3], i21[3])≥LOAD274(i15[3], +(i21[3], 1))∧(UIncreasing(LOAD274(i15[3], +(i21[3], 1))), ≥))
(2) ((UIncreasing(LOAD274(i15[3], +(i21[3], 1))), ≥)∧[1 + (-1)bso_11] ≥ 0)
(3) ((UIncreasing(LOAD274(i15[3], +(i21[3], 1))), ≥)∧[1 + (-1)bso_11] ≥ 0)
(4) ((UIncreasing(LOAD274(i15[3], +(i21[3], 1))), ≥)∧[1 + (-1)bso_11] ≥ 0)
(5) ((UIncreasing(LOAD274(i15[3], +(i21[3], 1))), ≥)∧0 = 0∧0 = 0∧[1 + (-1)bso_11] ≥ 0)
(6) (i15[2]=i15[3]∧i21[2]=i21[3]∧&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0))=TRUE ⇒ LOAD274(i15[2], i21[2])≥NonInfC∧LOAD274(i15[2], i21[2])≥COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])∧(UIncreasing(COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])), ≥))
(7) (>(+(i21[2], 1), 0)=TRUE∧>=(i21[2], 0)=TRUE∧<(i21[2], i15[2])=TRUE ⇒ LOAD274(i15[2], i21[2])≥NonInfC∧LOAD274(i15[2], i21[2])≥COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])∧(UIncreasing(COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])), ≥))
(8) (i21[2] ≥ 0∧i21[2] ≥ 0∧i15[2] + [-1] + [-1]i21[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [(-1)bni_12]i21[2] + [bni_12]i15[2] ≥ 0∧[(-1)bso_13] ≥ 0)
(9) (i21[2] ≥ 0∧i21[2] ≥ 0∧i15[2] + [-1] + [-1]i21[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [(-1)bni_12]i21[2] + [bni_12]i15[2] ≥ 0∧[(-1)bso_13] ≥ 0)
(10) (i21[2] ≥ 0∧i21[2] ≥ 0∧i15[2] + [-1] + [-1]i21[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [(-1)bni_12]i21[2] + [bni_12]i15[2] ≥ 0∧[(-1)bso_13] ≥ 0)
(11) (i21[2] ≥ 0∧i21[2] ≥ 0∧i15[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])), ≥)∧[(-1)Bound*bni_12] + [bni_12]i15[2] ≥ 0∧[(-1)bso_13] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(COND_LOAD274(x1, x2, x3)) = [-1] + x2 + [-1]x3
POL(LOAD274(x1, x2)) = [-1] + [-1]x2 + x1
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(&&(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
COND_LOAD274(TRUE, i15[3], i21[3]) → LOAD274(i15[3], +(i21[3], 1))
LOAD274(i15[2], i21[2]) → COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])
LOAD274(i15[2], i21[2]) → COND_LOAD274(&&(&&(>=(i21[2], 0), <(i21[2], i15[2])), >(+(i21[2], 1), 0)), i15[2], i21[2])
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer